#include <stdio.h>
#include <omp.h>

// nested_apply 函数
void nested_apply(double A[100]) {
    #pragma omp parallel for
    for (int i = 0; i < 100; i += 10) {
        #pragma GCC unroll 2
        for (int j = 0; j < 10; ++j) {
            int index = i + j;
            if (index < 100) {
                A[index] = A[index] + 1;
            }
        }
    }
}

int main() {
    double A[100];
    // 初始化数组元素为 0
    for (int i = 0; i < 100; ++i) {
        A[i] = 0;
    }

    // 调用 nested_apply 函数
    nested_apply(A);

    // 输出部分元素来验证结果
    for (int i = 0; i < 5; ++i) {
        printf("A[%d] = %.2f\n", i, A[i]);
    }

    return 0;
}    